package psn.polaris.http.callback;

import psn.polaris.http.dto.HttpRequestDTO;

import java.util.HashMap;
import java.util.Map;

public abstract class AbsByteHttpCallBack implements IHttpCallBack<byte[]>{

    /**
     * 执行方法
     *
     * @param requestDTO Http请求结果
     */
    @Override
    public void process(HttpRequestDTO requestDTO) {
        HashMap<Integer, byte[]> result = requestDTO.getResultMap();
        for (Map.Entry<Integer, byte[]> entry : result.entrySet()) {
            // 转换请求结果
            byte[] bytes = translateResult(entry.getValue());
            // 执行逻辑
            process(bytes, requestDTO);
        }
    }

    /**
     * 执行方法
     * @param bytes         执行字符串
     * @param requestDTO    请求信息
     */
    public abstract void process(byte[] bytes, HttpRequestDTO requestDTO);

    /**
     * 结果翻译方法
     *
     * @param result 请求返回
     * @return 转换结果
     */
    public byte[] translateResult(byte[] result) {
        return result;
    }

}
